HIP環境における最適化は、 厳密な経験的学問 直感的な推測の連続として扱うべきではありません。体系的なワークフローを採用することで、開発者はすべてのコード変更がデータによって正当化されることを保証し、パフォーマンス工学を「最適化の迷信」から、仮説と検証の繰り返し可能な科学的サイクルへと移行させます。
6段階のワークフロー
HIPパフォーマンスガイドラインでは、体系的な手順を推奨しています:
- ベースラインを測定する:現在の実行時間とスループットを確認します。
- プログラムをプロファイリングする:
rocprofv3ハードウェアカウンターを収集するために使用します。 - ボトルネックを特定する:計算制限、メモリ制限、またはレイテンシ制限かどうかを判断します。
- ターゲット最適化を適用する:特定されたボトルネックにのみ注目します。
- 再測定する:変更が実際にパフォーマンス向上につながったかを確認します。
- 反復する:目標が達成されるまでこのプロセスを繰り返します。
最適化の迷信を避ける
パフォーマンスの向上は、特定のハードウェアとの相互作用から得られる再現可能な結果でなければなりません。以下の アンチパターンを避けましょう:
- 現在のパフォーマンスを測定する前にカーネルコードを変更すること。
- カーネルがメモリ制限かどうかを把握せずにブロックサイズを調整すること。
- 特定のワークロードに対して重要である証拠なしに、占有率の数値を追うこと。
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>